With the development of the smart terminal technology, people oftentimes utilize smart terminals for activities such as work, school, entertainment and the like. For example, by use of a smart terminal, a user can browse documents, emails, video, etc., the content of which usually is displayed for the end user at the display of the smart terminal. During the browsing of such content, the user often wishes to save the information displayed on the display for purposes of record or sharing such information. In order to realize such functionality, the current technologies provide for multiple approaches for screen capture. Those approaches save the information displayed on a display in the form of images of screen capture such that it is convenient for the user to store the information displayed on the display.
One of the screen capture approaches by the Android systems reads image data displayed on a display device from the framebuffer when capturing the screenshot. A new file is used to store the screenshot in accordance with the image data such that to achieve the saving of the information displayed at the display upon screen capture.
A framebuffer is a mechanism in a display buffer that performs functions similar to a graphics card. In other words, the hardware structure of a graphics card is abstracted or mimicked by a framebuffer. The video memory is accessed by reading from and writing to the framebuffer. A user may consider the framebuffer as a memory mapping for the display memory. After the display memory is mapped into a process address space, the framebuffer can be read from and written to directly, and the writing can be reflected immediately on the display device. Therefore, in theory, a screenshot of the display device can be obtained by reading image data from the framebuffer to capture the screen image displayed on the display device.
However, methods of performing a screen capture utilizing a framebuffer sometimes produces corrupt or discolored images which do not display the information displayed at the display device, causing the user not able to save the display screen information. Further, such methods also sometimes produce images with distorted colors, e.g., red screen or blue screen, etc., which similarly do not display the information displayed at the display device, causing the user not able to save the display screen information.
Therefore, because current screen capture methods utilizing a framebuffer often leads to distorted images which do not display the information displayed at the display device upon screen capture such that the users cannot accurately save the information displayed at the display device, great inconvenience is caused for the users.